From 8aa46fd245497837c3005c9cd52544cab00691d1 Mon Sep 17 00:00:00 2001
From: "twilkie@paploo.uk.xensource.com" You domain had been successfully created. There was an error creating your domain. The error was:%s
" % sxp2prettystring( xend_sxp ) )
try:
- dom_sxp = server.xend_domain_create( xend_sxp )
- success = "Your domain was successfully created.\n"
- except:
- success = "There was an error creating your domain.\nThe configuration used is as follows:\n"
- dom_sxp = xend_sxp
-
-
-
- pt = PreTab( success + sxp2prettystring( dom_sxp ) )
- pt.write_BODY( request )
+ server.xend_domain_create( xend_sxp )
+ request.write( "
The configuration used is as follows:\n%s
" % sxp2prettystring( xend_sxp ) )
+ request.write( "%s
" % str( e ) )
request.write( "
Please Select a Domain
" ) return None - else: - self.dom = dom[0] - + GenTabbed.write_BODY( self, request ) def write_MENU( self, request ): - pass + domains = [] + + try: + domains = server.xend_domains() + domains.sort() + except: + pass + request.write( "\n| Domain | \n" ) + request.write( "Name | \n" ) + request.write( "State | \n" ) + request.write( "\n" ) + request.write( " | |
| %(id)s | \n" % domInfo ) + url = self.urlWriter( "&dom=%(id)s" % domInfo ) + request.write( "%s | \n" % ( url, domInfo['name'] ) ) + request.write( "%(state)5s | \n" % domInfo ) + if domInfo[ 'id' ] != "0": + request.write( "" )
+ if domInfo[ 'state' ][ 2 ] == "-":
+ request.write( " " % domInfo )
+ else:
+ request.write( " " % domInfo )
+ request.write( "![]() | " % domInfo )
+ else:
+ request.write( "" ) + request.write( " |
Please Select a Domain
" ) return None - self.dict = getDomInfoHash( self.dom ) + self.dict = getDomInfo( self.dom ) GeneralTab.write_BODY( self, request ) class DomSXPTab( PreTab ): - def __init__( self ): + def __init__( self, urlWriter ): self.dom = 0 PreTab.__init__( self, "" ) @@ -86,15 +123,15 @@ class DomSXPTab( PreTab ): self.source = sxp2prettystring( domInfo ) PreTab.write_BODY( self, request ) - + class DomActionTab( ActionTab ): - def __init__( self ): - actions = { "shutdown" : "shutdown", - "reboot" : "reboot", - "pause" : "pause", - "unpause" : "unpause", - "destroy" : "destroy" } + def __init__( self, urlWriter ): + actions = { "shutdown" : "Shutdown", + "reboot" : "Reboot", + "pause" : "Pause", + "unpause" : "Unpause", + "destroy" : "Destroy" } ActionTab.__init__( self, actions ) def op_shutdown( self, request ): @@ -141,8 +178,91 @@ class DomActionTab( ActionTab ): server.xend_domain_destroy( int( dom ), "halt" ) except: pass - - - - +class DomDeviceTab( CompositeTab ): + + def __init__( self, urlWriter ): + CompositeTab.__init__( self, [ DomDeviceListTab, DomDeviceOptionsTab, DomDeviceActionTab ], urlWriter ) + +class DomDeviceListTab( NullTab ): + + title = "Device List" + + def __init__( self, urlWriter ): + pass + +class DomDeviceOptionsTab( NullTab ): + + title = "Device Options" + + def __init__( self, urlWriter ): + pass + +class DomDeviceActionTab( ActionTab ): + + def __init__( self, urlWriter ): + ActionTab.__init__( self, { "addvcpu" : "Add VCPU", "addvbd" : "Add VBD", "addvif" : "Add VIF" } ) + +class DomMigrateTab( CompositeTab ): + + def __init__( self, urlWriter ): + CompositeTab.__init__( self, [ DomMigrateExtraTab, DomMigrateActionTab ], urlWriter ) + +class DomMigrateExtraTab( Sheet ): + + def __init__( self, urlWriter ): + Sheet.__init__( self, urlWriter, "Configure Migration", 0) + self.addControl( TickControl('live', 'True', 'Live migrate:') ) + self.addControl( InputControl('rate', '0', 'Rate limit:') ) + self.addControl( InputControl( 'dest', 'host.domain', 'Name or IP address:', ".*") ) + +class DomMigrateActionTab( ActionTab ): + + def __init__( self, urlWriter ): + actions = { "migrate" : "Migrate" } + ActionTab.__init__( self, actions ) + + def op_migrate( self, request ): + try: + domid = int( getVar( 'dom', request ) ) + live = getVar( 'live', request ) + rate = getVar( 'rate', request ) + dest = getVar( 'dest', request ) + dom_sxp = server.xend_domain_migrate( domid, dest, live == 'True', rate ) + success = "Your domain was successfully Migrated.\n" + except Exception, e: + success = "There was an error migrating your domain\n" + dom_sxp = str(e) + +class DomSaveTab( CompositeTab ): + + def __init__( self, urlWriter ): + CompositeTab.__init__( self, [ DomSaveExtraTab, DomSaveActionTab ], urlWriter ) + +class DomSaveExtraTab( Sheet ): + + title = "Save location" + + def __init__( self, urlWriter ): + Sheet.__init__( self, urlWriter, "Save Domain to file", 0 ) + self.addControl( InputControl( 'file', '', 'Suspend file name:', ".*") ) + +class DomSaveActionTab( ActionTab ): + + def __init__( self, urlWriter ): + actions = { "save" : "Save" } + ActionTab.__init__( self, actions ) + + def op_save( self, request ): + + try: + dom_sxp = server.xend_domain_save( config['domid'], config['file'] ) + success = "Your domain was successfully saved.\n" + except Exception, e: + success = "There was an error saving your domain\n" + dom_sxp = str(e) + + try: + dom = int( getVar( 'dom', request ) ) + except: + pass diff --git a/tools/python/xen/sv/DomList.py b/tools/python/xen/sv/DomList.py deleted file mode 100755 index c3951122d8..0000000000 --- a/tools/python/xen/sv/DomList.py +++ /dev/null @@ -1,81 +0,0 @@ -from xen.xend.XendClient import server -from xen.xend import sxp - -from xen.sv.HTMLBase import HTMLBase -from xen.sv.util import * - -class DomList( HTMLBase ): - - isLeaf = True - - def __init__( self, urlWriter ): - HTMLBase.__init__(self) - self.urlWriter = urlWriter - - def write_MENU( self, request ): - return self.write_BODY( request, head=True, long=False ) - - def write_BODY( self, request, head=True, long=True ): - - domains = [] - - try: - domains = server.xend_domains() - domains.sort() - except: - pass - - request.write( "\n
" % domInfoHash )
- else:
- request.write( "
" % domInfoHash )
-
- request.write( "
| " )
- request.write( " %s " % self.title ) + request.write( "\n%s " % self.title )
- TabView( tab, self.tabStrings, self.urlWriter ).write_BODY( request )
+ TabView( self.tab, self.tabStrings, self.urlWriter ).write_BODY( request )
- request.write( " |
| " )
-
try:
- render_tab = self.tabObjects[ tab ]
- render_tab().write_BODY( request )
- except:
- request.write( " Error Rendering Tab " ) - - request.write( " |
Error Rendering Tab
" ) + request.write( "\n%s
" % str( e ) ) + + request.write( "\n" % self.tab ) + def perform( self, request ): + request.write( "Tab> perform" ) + request.write( "" )
-
+ request.write( "\n" )
request.write( self.source )
-
- request.write( "